package presentation;

import java.awt.BorderLayout;
import java.awt.ComponentOrientation;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.util.Iterator;
import java.util.Locale;
import java.util.ResourceBundle;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.SoftBevelBorder;

import presentation.IhmGestionMatchs.ZoneCreationMatch;
/**
 * Class IhmClassement
 * Package presentation
 * Dfinition de la fenetre d'affichage du classement
 * 
 * @author Herv Le Fouler et Lionel Lasry
 */
public class IhmClassement {
	private String nomChampionnat;
	public 	Locale local = Locale.getDefault();
	public JPanel zoneClassement = new JPanel();
	public JPanel labelEntetePanel = new JPanel();
	public JPanel labelClassement = new JPanel();
	public 	ResourceBundle bundle = ResourceBundle.getBundle( "presentation/traduction", local);
	
	/**
	 * Constructeur de IhmClassement
	 * @param String nom du championnat
	 */
	public IhmClassement(String nomChampionnat){
		this.nomChampionnat = nomChampionnat;
	}
	/**
	 * Lance l'affichage du classement
	 * Cration d'une fenetre et ajout des JPanel
	 * Appel la mthode addElementsZoneClassement() de la classe ZoneClassement pour peupler la fentre
	 */
	public void lancementEcranClassement(){
		JFrame fenetreGestionMatch = new JFrame(bundle.getString("titre_ecran_classement")+" "+nomChampionnat);
		ZoneClassement zone = new ZoneClassement();
		zone.addElementsZoneClassement();
		zoneClassement.setVisible(true);
		fenetreGestionMatch.setSize(700,800);
		fenetreGestionMatch.add(zoneClassement,BorderLayout.CENTER);	
		fenetreGestionMatch.setVisible(true);
	}
	/**
	 * Class ZoneClassement
	 * Package presentation
	 * Dfinition de la zone de Classement pour l'IHM
	 * @author Herv Le Fouler et Lionel Lasry
	 */
	public class ZoneClassement {
		/**
		 * Peuple la fentre de classement
		 * Rcupre la liste des quipes et affiche leurs scores actuels
		 */
		public void addElementsZoneClassement(){
			ChampionnatInterface championnatClient;
			try {
				championnatClient = (ChampionnatInterface) Naming.lookup("Championnat");
				championnatClient.findChampionnat(nomChampionnat);
				championnatClient.getListeEquipes();

				//GridLayout entete = new GridLayout(1,3,5,5);

				GridLayout entete = new GridLayout(championnatClient.getListeEquipes().size()+1,3,20,20);
				labelEntetePanel.setLayout(entete);
				labelEntetePanel.setSize(450,50);
				JButton boutonRefresh = new JButton(bundle.getString("refresh_team"));
				JLabel labelEnteteEquipe = new JLabel("Nom Equipe");
				JLabel labelEntetePoints = new JLabel("Points");
				JLabel labelEnteteGoalaverage = new JLabel("Goal Average");
				ListenClassement monListener = new ListenClassement(nomChampionnat,zoneClassement,labelClassement);
				boutonRefresh.addActionListener(monListener);
				labelEntetePanel.add(boutonRefresh);
				labelEntetePanel.add(labelEnteteEquipe);
				labelEntetePanel.add(labelEntetePoints);
				labelEntetePanel.add(labelEnteteGoalaverage);
				
				for(Iterator i = championnatClient.getListeEquipes().iterator(); i.hasNext();){
					EquipeInterface e = (EquipeInterface) i.next();
					JLabel labelEquipeDynamique = new JLabel(e.getNom());
					JLabel labelPointsDynamique = new JLabel(""+e.getPoints());
					JLabel labelGoalDynamique = new JLabel(""+e.getGoalaverage());
					labelClassement.add(labelEquipeDynamique);
					labelClassement.add(labelPointsDynamique);
					labelClassement.add(labelGoalDynamique);
				}
				zoneClassement.add(labelEntetePanel);
				zoneClassement.add(labelClassement);
			} catch (MalformedURLException e1) {
				e1.printStackTrace();
			} catch (RemoteException e1) {
				e1.printStackTrace();
			} catch (NotBoundException e1) {
				e1.printStackTrace();
			}
		}
	}
}
